//潜水员
#include <iostream>
using namespace std;
const int MAXM=21;
const int MAXN=79;
const int MAXK=1000;
int a[MAXK+1],b[MAXK+1],c[MAXK+1];
int minc[MAXM+1][MAXN+1];
int m,n,k;
int main(){
    cin>>m>>n;
    cin>>k;
    for(int i=1;i<=k;i++)
        cin>>a[i]>>b[i]>>c[i];
    //初始化minc中的每个元素为最大值maxk*800，但minc[0][0]=0
    for(int i=0;i<=m;i++)
        for(int j=0;j<=n;j++) minc[i][j]=MAXK*800;//不能设为最大整数，因为喜欢动规中会加上某个数，这样就造成
                                            //溢出得到一个负数
    minc[0][0]=0;                   

    
    for(int i=1;i<=k;i++)
        for(int v1=m;v1>=0;v1--)//氧的维度
            for(int v2=n;v2>=0;v2--){//氮的维度
                int t1=v1+a[i];
                int t2=v2+b[i];
                if (t1>m) t1=m;
                if (t2>n) t2=n;
                if (minc[t1][t2]>minc[v1][v2]+c[i]) minc[t1][t2]=minc[v1][v2]+c[i];
            }
    cout<<minc[m][n];
}